<?php
    include_once ("MySql.php");
    include_once ("../entity/Producto.php");
    
    class ProductoDA extends dal{
        public function ProductoDA(){
            parent::dal();
        }
        
        public function generarCodigo(){
            $sql = "CALL SGLSS_PRODUCTO_CODIGO";
            $result = parent::ejecutar($sql);
            
            while ($fila = mysqli_fetch_object($result)){
                $obj = new Producto();
                $obj->codigoNuevo = $fila->codigoNuevo;
            }
            return $obj;
        }
        
        public function obtenerID($entity){
            $sql = "CALL SGLSS_PRODUCTO_X_COD('$entity->codigo','$entity->nombre')";
            $result = parent::ejecutar($sql);
            
            while ($fila = mysqli_fetch_object($result)){
                $obj = new Producto();
                $obj->codigo = $fila->codigo;
                $obj->codigo_alterno = $fila->codigo_alterno;
                $obj->nombre = $fila->nombre;
                $obj->cod_unidad = $fila->cod_unidad;
                $obj->unidad_medida = $fila->unidad_medida;
                $obj->tipo = $fila->tipo;
                $obj->descrip_tipo = $fila->descrip_tipo;
            }
            return $obj;
        }
        
        public function editar($entity){
            $codigo_alterno = strtoupper($entity->codigo_alterno);
            $nombre = strtoupper($entity->nombre);
            
            $sql = "CALL SGLSU_PRODUCTO('$entity->codigo',"
                    . "'$codigo_alterno',"
                    . "'$nombre',"
                    . "'$entity->cod_unidad',"
                    . "'$entity->tipo',"
                    . "'$entity->usuario_modi')";
            
            $result = parent::ejecutar($sql);
            
            if($result){
                return true;
            }else{
                return false;
            }
                  
        }
        public function validarEliminar($codigo){
            $sql = "CALL SGLSS_VALIDAR_ELIMINAR_PRODUCTO('$codigo')";
            $result = parent::ejecutar($sql);
            
            while ($fila = mysqli_fetch_object($result)){
                $num_row = $fila->num_row;
            }
            return $num_row;
        }
        public function eliminar($entity){
            $sql = "CALL SGLSD_PRODUCTO('$entity->codigo')";
            $result = parent::ejecutar($sql);
            if($result){
                return true;
            }else{
                return false;
            }
        }

        public function insertar($entity){
            $codigo_alterno = strtoupper($entity->codigo_alterno);
            $nombre = strtoupper($entity->nombre);
            
            $sql = "CALL SGLSI_PRODUCTO('$codigo_alterno',"
                    ."'$nombre',"
                    ."'$entity->cod_unidad',"
                    ."'$entity->tipo',"
                    ."'$entity->usuario_crea')";
            $result = parent::ejecutar($sql);

            if($result){
                return true;
            }else{
                return false;
            }
        }

        public function numeroRegistro($codigo_alterno,$nombre){
            $sql = "CALL SGLSS_CUENTA_PRODUCTO('$codigo_alterno','$nombre')";
            $result = parent::ejecutar($sql);
            $num_row=0;
            while($fila = mysqli_fetch_object($result)){
                $num_row= $fila->num_row;
            }
            return $num_row;
        }
        public function BuscarSearch($entity, $start , $limit,$sidx,$sord){
            $sql = "CALL SGLSS_PRODUCTO_SEARCH('$entity->codigo_alterno',"
                    . "'$entity->nombre',"
                    . "'$start' ,"
                    . "'$limit',"
                    . "'$sidx',"
                    . "'$sord')";
            $result = parent::ejecutar($sql);
            while($fila = mysqli_fetch_object($result)){
                $obj = new Producto();
                $obj->codigo = $fila->codigo;
                $obj->codigo_alterno = $fila->codigo_alterno;
                $obj->nombre = $fila->nombre;
                $obj->cod_unidad = $fila->cod_unidad;
                $obj->unidad_medida = $fila->unidad_medida;
                $obj->tipo = $fila->tipo;
                $obj->descrip_tipo = $fila->descrip_tipo;
                $producto[] = $obj;
            }
            return $producto;
        }
    }
?>
